package config

import (
	"log"
	"os"
	"strconv"

	"github.com/joho/godotenv"
)

type DB struct {
	Host     string
	Port     uint16
	Database string
	User     string
	Password string
}

func NewDB() *DB {

	err := godotenv.Load()
	if err != nil {
		log.Fatalf(".env файл не прочитан: %e", err)
	}

	port, _ := strconv.ParseUint(os.Getenv("DBPORT"), 10, 16)

	return &DB{
		Host:     os.Getenv("DBHOST"),
		Port:     uint16(port),
		Database: os.Getenv("DB"),
		User:     os.Getenv("DBUSER"),
		Password: os.Getenv("DBPASSWORD"),
	}
}

type Config struct {
	DB *DB
}

func NewConfig() *Config {
	return &Config{
		DB: NewDB(),
	}
}
